Firmware updates for a processor, more specifically known as microcode patches, are created for various purposes such as, for example, error correction, feature enhancement, and security updates. It would be unwieldy to require end users to replace a computer processor if only a minor bug is found in the processor. Likewise, it is too costly to replace processors whenever minor compatibility issues occur or new enhancements are introduced into the marketplace. Patching processor microcode is usually a feasible solution for the situations aforementioned.
The initialization and configuration of a computer system by firmware, such as Basic Input/Output System (BIOS), occur during a preboot phase. After power-on reset, a processor refers to a predetermined address which is mapped to a computer chip storing BIOS firmware. The processor sequentially fetches BIOS instructions. These instructions typically cause the computer to (i) initialize its electronic hardware; (ii) initialize its peripheral devices; and (iii) boot an operating system. Unified Extensible Firmware Interface (UEFI) is a modern BIOS firmware architecture comprising several phases such as: security phase (SEC), platform Environment Initialization (PEI) phase, driver execution environment (DXE) phase, and boot device select (BDS) phase.